在 Windows 上安裝與升級 PowerShell 7
TLDR
- Windows PowerShell (5.1) 與 PowerShell 7 是完全不同的產品,前者已停止開發,後者為跨平台且持續更新的現代版本。
- 兩者可並存於同一系統,Windows PowerShell 執行檔為
powershell.exe,PowerShell 7 為pwsh.exe。 - 建議在需要跨平台腳本、解決 UTF-8 編碼亂碼,或使用現代開發工具(如 Copilot CLI)時安裝 PowerShell 7。
- 使用 WinGet 可快速安裝與升級 PowerShell 7。
- PowerShell 7 預設不包含離線說明文件,需透過
Update-Help指令手動下載。
Windows PowerShell 與 PowerShell 7 的差異
在需要使用現代開發工具或處理跨平台腳本時,會遇到 Windows PowerShell 5.1 功能受限的問題。兩者主要差異如下:
- 底層架構:Windows PowerShell 基於封閉的 .NET Framework,僅限 Windows;PowerShell 7 基於開源的 .NET,支援 Windows、Linux、macOS 與 Docker。
- 生命週期:Windows PowerShell 已停止新功能開發;PowerShell 7 持續更新並提供 LTS 版本。
- 編碼處理:PowerShell 7 統一採用 UTF-8(不含 BOM),解決了 Windows PowerShell 處理中文字元或與 Git 互動時常見的亂碼問題。
- 執行檔隔離:兩者可並存,互不干擾。
安裝與管理指南
當開發環境需要 PowerShell 6 以上版本時,可透過 WinGet 進行管理,系統會自動設定環境變數。
- 搜尋可用版本:powershell
winget search --id Microsoft.PowerShell - 安裝最新穩定版:powershell
winget install --id Microsoft.PowerShell --source winget - 一鍵升級至最新版:powershell
winget upgrade --id Microsoft.PowerShell - 解除安裝:powershell
winget uninstall --id Microsoft.PowerShell
Get-Help 說明文件機制
當執行 Get-Help 指令卻無法顯示範例或詳細參數說明時,通常是因為本機尚未下載說明文件。
解決方式
- 連線查詢:使用
-Online參數(如Get-Help Get-Process -Online),直接開啟瀏覽器查看官方網頁版說明。 - 下載離線檔:以系統管理員身分執行以下指令:powershell
Update-Help -UICulture zh-tw, en-US -Force -ErrorAction SilentlyContinue
參數說明
-UICulture zh-tw, en-US:指定下載語言,包含en-US作為備援。-Force:強制重新下載說明檔。-ErrorAction SilentlyContinue:忽略部分模組因無線上說明檔而產生的錯誤訊息。
什麼情況下需要額外安裝新版?
若遇到以下情境,建議安裝 PowerShell 7:
- AI 腳本基準:AI 產生的腳本通常以 PowerShell 6+ 為基準,在 5.1 版本執行容易失敗。
- 編碼問題:需處理無 BOM 的 UTF-8 檔案,避免中文字元在 5.1 版本中被誤判為 ANSI 導致亂碼。
- 工具版本要求:如 Copilot CLI 等現代工具明確要求 PowerShell 6+。
- 跨平台需求:需編寫可在 Windows、Linux、macOS 通用的腳本。
異動歷程
- 初版文件建立。